<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- https://juejin.cn/post/6844903496253177863 -->
    <script>
        var name = "windowsName";

        var a = {
            name: "Cherry",

            func1: function () {
                console.log(this.name)
            },

            func2: function () {
                setTimeout(() => {//tag1
                    this.func1()
                }, 100);//tag1
            }
            /*
            注释掉tag1，输出结果一致
            箭头函数的 this 始终指向函数定义时的 this，而非执行时。
            ，箭头函数需要记着这句话：“箭头函数中没有 this 绑定，
            必须通过查找作用域链来决定其值，
            如果箭头函数被非箭头函数包含，
            则 this 绑定的是最近一层非箭头函数的 this，
            否则，this 为 undefined”。

作者：sunshine小小倩
链接：https://juejin.cn/post/6844903496253177863
来源：稀土掘金
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
            */

        };

        a.func2()     // Cherry
    </script>
</body>

</html>